package start;

/**
 * Konfigurationsklasse fuer Einstellungen zu Pfaden und Programmverhalten
 * @author Dominik Korittki
 */
public final class Config {
	/**Dient zur Ausgabe von Debuginformationen*/
	private static boolean debug = false;
	/**Maximale Wortlaenge des Rezeptnamen*/
	private static int maxSizeRezeptName = 50;
	/**Maximale Wortlaenge der Zutatnamen*/
	private static int maxSizeZutatenName = 30;
	/**Maximale Wortlaenge des Zubereitungstextes*/
	private static int maxSizeZubereitungsText = 2000;
	/**Pfad zum Ordner der gespeicherten Daten des Users*/
	private static String rezeptpfad = "saved_recipes/";
	/**Pfad zum Ordner der gespeicherten images des Users*/
	private static String bildpfad = rezeptpfad + "images/";
	/**Pfad zum Ordner der gespeicherten thumbs des Users*/
	private static String thumbpfad = bildpfad + "thumbs/";
	/**Dateiname der XML fuer Rezepte*/
	private static String dateinameRezepte = "recipes.xml";
	/**Dateiname der XML fuer Kategorien*/
	private static String dateinameKategorie = "categories.xml";
	
	/**
	 * Liefert true wenn alle Debugausgaben aktiviert sind
	 * Liefert false wenn alle Debugausgaben deaktiviert sind
	 * @return true oder false
	 */
	public static boolean debugMode() {
		return debug;
	}

	/**
	 * Liefert die maximale Wortlaenge des Rezeptnamen
	 * @return maximale Wortlaenge
	 */
	public static int getMaxSizeRezeptName() {
		return maxSizeRezeptName;
	}

	/**
	 * Setzt die maximale Wortlaenge des Rezeptnamen 
	 * @param maxSizeRezeptName
	 */
	public static void setMaxSizeRezeptName(int maxSizeRezeptName) {
		Config.maxSizeRezeptName = maxSizeRezeptName;
	}

	/**
	 * Liefert die maximale Wortlaenge der Zutatnamen
	 * @return maximale Wortlaenge
	 */
	public static int getMaxSizeZutatenName() {
		return maxSizeZutatenName;
	}

	/**
	 * Setzt die maximale Wortlaenge der Zutatnamen
	 * @param maxSizeZutatenName
	 */
	public static void setMaxSizeZutatenName(int maxSizeZutatenName) {
		Config.maxSizeZutatenName = maxSizeZutatenName;
	}

	/**
	 * Liefert die maximale Wortlaenge des Zubereitungstextes
	 * @return maximale Wortlaenge
	 */
	public static int getMaxSizeZubereitungsText() {
		return maxSizeZubereitungsText;
	}

	/**
	 * Setzt die maximale Wortlaenge des Zubereitungstextes
	 * @param maxSizeZubereitungsText
	 */
	public static void setMaxSizeZubereitungsText(int maxSizeZubereitungsText) {
		Config.maxSizeZubereitungsText = maxSizeZubereitungsText;
	}
	
	/**
	 * Liefert den Pfad zum Ordner der gespeicherten Daten des Users
	 * @return Rezeptpfad
	 */
	public static String getRezeptpfad() {
		return rezeptpfad;
	}

	/**
	 * Setzt den Pfad zum Ordner der gespeicherten Daten des Users
	 * @param rezeptpfad Neuen Rezeptpfad, welcher gesetzt wird
	 */
	public static void setRezeptpfad(String rezeptpfad) {
		Config.rezeptpfad = rezeptpfad;
	}

	/**
	 * Liefert den Pfad zum Ordner der gespeicherten images des Users
	 * @return Bildpfad
	 */
	public static String getBildpfad() {
		return bildpfad;
	}

	/**
	 * Setzt den Pfad zum Ordner der gespeicherten images des Users
	 * @param bildpfad Neuen Bildpfad setzen
	 */
	public static void setBildpfad(String bildpfad) {
		Config.bildpfad = bildpfad;
	}
	
	/**
	 * Liefert den Dateinamen der XML fuer Rezepte
	 * @return Rezepte XML Dateiname
	 */
	public static String getDateinameRezepte() {
		return dateinameRezepte;
	}

	/**
	 * Setzt den Dateinamen der XML fuer Rezepte
	 * @param dateinameRezepte Neuer Dateiname fuer Rezepte XML
	 */
	public static void setRezeptexml(String dateinameRezepte) {
		Config.dateinameRezepte = dateinameRezepte;
	}

	/**
	 * Liefert den Dateinamen der XML fuer Kategorien
	 * @return Dateiname fuer die Kategorie XML
	 */
	public static String getDateinameKategorie() {
		return dateinameKategorie;
	}

	/**
	 * Setzt den Dateinamen der XML fuer Kategorien
	 * @param dateinameKategorie Neuer Dateiname fuer die Kategorie XML
	 */
	public static void setDateinameKategorie(String dateinameKategorie) {
		Config.dateinameKategorie = dateinameKategorie;
	}

	/**
	 * Liefert den Pfad zum Ordner der gespeicherten thumbs des Users
	 * @return Pfad zu den Thumbnails
	 */
	public static String getThumbpfad() {
		return thumbpfad;
	}

	/**
	 * Setzt den Pfad zum Ordner der gespeicherten thumbs des Users
	 * @param thumbpfad
	 */
	public static void setThumbpfad(String thumbpfad) {
		Config.thumbpfad = thumbpfad;
	}

	/**
	 * Nichtsmachender Konstruktor
	 */
	public Config() {}
}
